590 GET (1,1)-(159,198),BEFPLEFT% : GET (160,1)-(318,198),BEFPRIGHT%
600 BEFCOLOR = POINT(XX,YY)
610 CMD$=INKEY$:IF CMD$="" THEN POKE 23,(PEEK(23) AND 223):GOTO 610
620 IF MID$(CMD$,2,1) = "K" THEN XX=XX-1:GOTO 1010
630 IF MID$(CMD$,2,1) = "M" THEN XX=XX+1:GOTO 1010
640 IF MID$(CMD$,2,1) = "s" THEN XX=XX-5:GOTO 1010
650 IF MID$(CMD$,2,1) = "t" THEN XX=XX+5:GOTO 1010
660 IF MID$(CMD$,2,1) = "P" THEN YY=YY+1:GOTO 1010
670 IF MID$(CMD$,2,1) = "H" THEN YY=YY-1:GOTO 1010
680 IF MID$(CMD$,2,1) = "u" THEN YY=YY+5:GOTO 1010
690 IF MID$(CMD$,2,1) = "w" THEN YY=YY-5:GOTO 1010
700 IF MID$(CMD$,2,1) = "G" THEN YY=YY-1:XX=XX-1:GOTO 1010
710 IF MID$(CMD$,2,1) = "O" THEN YY=YY+1:XX=XX-1:GOTO 1010
720 IF MID$(CMD$,2,1) = "I" THEN YY=YY-1:XX=XX+1:GOTO 1010
730 IF MID$(CMD$,2,1) = "Q" THEN YY=YY+1:XX=XX+1:GOTO 1010
740 IF TEXTMODEFLAG THEN 3140
750 ' IF COMMAND ENTERED IS SMALL CASE MAKE IT LARGE.
760 IF ASC(CMD$)>96 AND ASC(CMD$)<123 THEN CMD$=CHR$(ASC(CMD$)-32)
770 IF CMD$ = "-" THEN PALETTE=0:COLOR BACKCOLOR,PALETTE
780 IF CMD$ = "=" THEN PALETTE=1:COLOR BACKCOLOR,PALETTE
790 IF CMD$ = "0" THEN CUSCOL = 0
800 IF CMD$ = "1" THEN CUSCOL = 1
810 IF CMD$ = "2" THEN CUSCOL = 2
820 IF CMD$ = "3" THEN CUSCOL = 3
830 IF CMD$ = "M" THEN OLDXX=XX:OLDYY=YY
840 IF CMD$ = "D" AND DDRAW = 0 THEN DDRAW = 1 : GOSUB 1170
850 IF ASC(CMD$) = 27 AND DDRAW THEN DDRAW=0 : PUT (0,0),STORARY%,PSET
860 IF CMD$ = "L" THEN GOSUB 1900
870 IF CMD$ = "P" THEN GOSUB 2000
880 IF CMD$ = "B" THEN GOSUB 2110
890 IF CMD$ = "E" THEN GOSUB 2350
900 IF CMD$ = "R" THEN GOSUB 2560
910 IF CMD$ = "C" THEN GOSUB 2260
920 IF CMD$ = "A" THEN GOSUB 2960
930 IF CMD$ = "U" THEN PUT (1,1),BEFPLEFT%,PSET : PUT (160,1),BEFPRIGHT%,PSET : BEFCOLOR = POINT(XX,YY)
940 IF CMD$ = "T" AND DDRAW = 0 THEN PSET (XX,YY),BEFCOLOR:GET (0,0)-(32,8), STORARY%
950 IF CMD$ = "T" THEN LOCATE 1,1:PRINT "Text";:LINE (32,0)-(32,8),BORDERCOL : LINE (0,8)-(32,8),BORDERCOL : TEXTMODEFLAG=1 : DDRAW=0:GOTO 610
960 IF CMD$ = "S" THEN KOPY=1:GOSUB 3230
970 IF CMD$ = "K" AND KOPY THEN GOSUB 3360
980 IF CMD$ = "X" THEN GOSUB 2060
990 IF CMD$ = "H" THEN GOSUB 1200
1000 IF CMD$ = "?" THEN ERASE STORARY%,BEFPLEFT%,BEFPRIGHT%,SAVEBLOCK%:GOTO 520
1010 'Adjust so pointer does not exceed borders.
1020 IF XX>318 THEN XX=318
1030 IF YY>198 THEN YY=198
1040 IF TEXTMODEFLAG=0 AND DDRAW=0 THEN 1070
1050 IF XX>=28 AND XX<=32 AND YY<9 THEN XX=33 : GOTO 1070
1060 IF YY=8 AND XX<33 THEN YY=9
1070 IF XX<1 THEN XX=1
1080 IF YY<1 THEN YY=1
1090 'If in draw mode leave current position as is. If not, restore dot.
1100 'Save color of this position.
1110 IF DDRAW THEN 1140
1120 PRESET(LASTXX,LASTYY),BEFCOLOR
1130 BEFCOLOR = POINT(XX,YY)
1140 PSET(XX,YY),CUSCOL
1150 LASTXX = XX : LASTYY = YY
1160 GOTO 610
1170 'Check if draw mode is on or not and display appropriate message.
1180 IF DDRAW THEN PSET(XX,YY),BEFCOLOR:GET (0,0)-(32,8),STORARY% : LOCATE 1,1 : PRINT "Draw"; : LINE (32,0)-(32,8),BORDERCOL : LINE (0,8)-(32,8),BORDERCOL
1190 RETURN
1200 ' Help menu display routine.
1210 PSET (XX,YY),BEFCOLOR
1220 ERASE SAVEBLOCK% : DIM SAVESCREEN%(8002)
1230 GET (0,0)-(319,199),SAVESCREEN%
1240 SCREEN 0,0,0 : WIDTH 80
1250 COLOR 7,1,1
1260 RESTORE:CLS:LOCATE 1,1,0:FOR I=1 TO 23:READ A$:PRINT A$:NEXT I
1270 READ A$ : PRINT A$;
1280 CMD$=INKEY$:IF CMD$="" THEN 1280
1290 IF ASC(CMD$)=27 AND PSTART%=1 THEN 510
1300 IF ASC(CMD$)=27 THEN 1360
1310 IF ASC(CMD$)<>32 THEN 1280
1320 CLS:LOCATE 1,1,0:FOR I=1 TO 23:READ A$:PRINT A$:NEXT I
1330 READ A$ : PRINT A$;
1340 CMD$=INKEY$:IF CMD$="" THEN 1340
1350 IF PSTART%=1 THEN 510
1360 CLS:SCREEN 1:COLOR BACKCOLOR,PALETTE
1370 PUT (0,0),SAVESCREEN%,PSET
1380 ERASE SAVESCREEN% : DIM SAVEBLOCK%(5) : KOPY = 0
1390 RETURN
1400 ' Data statements for help menus
1410 DATA " >>> INSTRUCTION SCREEN <<< Page 1"
1420 DATA " ╔═════════════════════════════════════════════════════════╗"
1430 DATA " ║To move the pinpoint, on side pad, press: ║"
1440 DATA " ║ ║"
1450 DATA " ║ 1, 2, 3, 4, 6, 7, 8, or 9. Ctrl-6, Ctrl-4, Ctrl-1, ║"
1460 DATA " ║ or Ctrl-7 moves pinpoint increments of 5. ║"
1470 DATA " ╚═════════════════════════════════════════════════════════╝"
1480 DATA " ╔════════════════════════════════════╗"
1490 DATA " ║Color control: ║"
1500 DATA " ║ ║ ╔═══════════════════════════╗"
1510 DATA " ║ Border: 'B <0, 1, 2, or 3>', ║ ║Circles: ║"